//package com.example.lambda;
//
//import com.example.flow.FlowTest;
//import org.junit.Test;
//import org.springframework.util.concurrent.SuccessCallback;
//
//import java.math.BigDecimal;
//import java.util.Arrays;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//import java.util.Optional;
//import java.util.concurrent.Flow;
//import java.util.concurrent.atomic.AtomicReference;
//import java.util.stream.Collector;
//import java.util.stream.Collectors;
//import java.util.stream.Stream;
//
///**
// * @author csp 2021-01-04
// */
//public class IfPresent {
//
//    private String test(Map<String, String> quota, String symbol) {
//        StringBuilder sb = new StringBuilder("( ");
//        quota.forEach((s, o) -> {
//            sb.append("(").append("fplxdm = ").append(s).append(" and ")
//                    .append("quota ").append(symbol).append(new BigDecimal(o)).append(")").append(" or ");
//        });
//        return sb.toString().replaceAll("or $", ")");
//    }
//    @Test
//    public void test(){
//        Map<String, String> quota = new HashMap<>();
//        quota.put("026", "100000");
//        String test = test(quota, ">");
//        System.out.println(test);
//    }
//    @Test
//    public void sum(){
//        int a = 10;
//        Optional<Integer> val = Optional.ofNullable(a);
//        AtomicReference<Integer> ref = new AtomicReference<>();
//        Optional.ofNullable(Integer.valueOf(20)).ifPresent(b->{
//        });
//        System.out.println(ref.get());
//    }
//
//    @Test
//    public void stream() {
//
//        List<Integer> list = Arrays.asList(1, 2, 4);
//        Stream<Integer> stream = list
//                    .stream()
//                    .peek(i -> {
//                        if (i == 3) {
//                            throw new RuntimeException();
//                        }
//                    })
//                    .onClose(() -> System.out.println("closed"));;
//        //
//        try (Stream<Integer> s = stream) {
//            Integer reduce = s.reduce(null, Integer::sum);
//            System.out.println(reduce);
//        }
////        stream.forEach(System.out::println);
//
//    }
//
//    @Test
//    public void opt(){
//        Optional<Integer> optional = Optional.ofNullable(1);
//        Integer integer = optional.map(a -> a + 1).orElse(3);
//        Integer integer1 = optional.flatMap(a -> Optional.of(a + 4)).orElse(4);
//
//    }
//
//    @Test
//    public void opt1(){
//        Optional.ofNullable(1)
//                .ifPresentOrElse(i -> {
//                    System.out.println(Thread.currentThread().getName() + i);
//                }, Thread::new);
//
//
//        Stream.of(1, 2, 4, 5).dropWhile(integer -> integer.equals(2))
//                .forEach(System.out::println);
//
//        Stream.ofNullable(1).forEach(System.out::println);
//
//    }
//
//    @Test
//    public void test3(){
//        Integer id = null;
//        System.out.println(Integer.valueOf(1).equals(id));
//    }
//
//}
